package com.jswdwsx.esign.protocol.response

import com.fasterxml.jackson.annotation.JsonProperty
import com.jswdwsx.esign.protocol.request.PosBean

data class QueryFlowSignFieldsResp(
    val signfields: Array<SignField>
) {
    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (javaClass != other?.javaClass) return false

        other as QueryFlowSignFieldsResp

        if (!signfields.contentEquals(other.signfields)) return false

        return true
    }

    override fun hashCode(): Int {
        return signfields.contentHashCode()
    }
}

data class SignField(
    @JsonProperty("actorindentitytype")
    val actorIndentityType: String? = null,       // 签约主体类别，0-个人，1-机构，默认0,2 是不限	int32
    val addTime: String? = null,                  // 添加时间	int64
    @JsonProperty("assignedPosbean")
    val assignedPosBean: String? = null,          // 是否指定位置，TRUE表示不允许更新位置，配置项，无默认值	boolean
    val assignedSeal: String? = null,             // 是否指定印章数据，TRUE表示不允许更新印章，配置项，无默认值	boolean
    val authorizedAccountId: String? = null,      // 签约主体账号标识，将使用该主体账号对应的数字证书完成本次签署，如：当存在签署操作人代某机构签署时，需要传入该机构的账号id	string
    val autoExecute: String? = null,              // 是否自动执行，TRUE需要静默授权，配置项，无默认值	boolean
    val executeFailedReason: String? = null,      // 执行失败原因	string
    val fileId: String? = null,                   // 文件file id	string
    val flowId: String? = null,                   // 流程id	string
    val order: String? = null,                    // 签署区顺序，默认1,且不小于1，顺序越小越先处理	int32
    val posBean: PosBean? = null,                 // 签署区位置信息	签署区位置数据
    val posPage: String? = null,                  // 页码信息，可以','或'-'分割	string
    val posX: String? = null,                     // x坐标	float
    val posY: String? = null,                     // y坐标	float
    val width: String? = null,                    // 签署区宽	float
    val sealFileKey: String? = null,              // 印章文件file key	string
    val sealId: String? = null,                   // 印章id	string
    val sealType: String? = null,                 // 印章类型，支持多种类型时逗号分割，0-手绘印章，1-模版印章，为空不限制	string
    val signType: String? = null,                 // 签署类型，0-不限，1-单页签署，2-骑缝签署,4-关键字签署，默认1	int32
    val signerAccountId: String? = null,          // 签署操作人个人账号标识，即操作本次签署的个人，如需e签宝通知用户签署，则系统向该账号下绑定的手机、邮箱发送签署链接	string
    @JsonProperty("signfieldId")
    val signFieldId: String? = null,              // 签署区Id	string
    val status: String? = null,                   // 签署区状态（0："等待执行，1："执行中"，2："执行失败"，3："审批中"，4： "执行完成"）	int32
    val statusDescription: String? = null         // 状态描述	string
)





